package com.ctcemti.mdm.project.sys.dao;

import com.ctcemti.mdm.project.sys.entity.SysMenu;
import org.apache.ibatis.annotations.Mapper;
import tk.mybatis.mapper.common.IdsMapper;

import java.util.List;
import java.util.Map;

/**
 * @ClassName SysMenuMapper
 * @Description 菜单管理dao接口层
 * @Author bxf
 * @Date 11:20 2019/7/12
 * @Version V1.0
 **/
@Mapper
public interface SysMenuMapper extends tk.mybatis.mapper.common.Mapper<SysMenu>,IdsMapper<SysMenu> {

    /**
     * @Author bxf
     * @Description 根据父id（包含权限）获取对象list
     * @Date 16:18 2019/7/12
     * @Param 
     * @return 
     **/
    public List<SysMenu> selectByPid(Map<String,Object> params);

    /**
     * @Author bxf
     * @Description 根据主键id修改属性值
     * @Date 11:03 2019/7/16
     * @Param 
     * @return 
     **/
    public int updateByIdSelective(SysMenu sysMenu);

    /**
     * 根据菜单名称（包含权限）查询树结构
     * @param params
     * @return
     */
    public List<SysMenu> selectMenuByMenuName(Map<String,Object> params);

    /**
     * @Author bxf
     * @Description 根据id获取所有子集id
     * @Date 9:42 2019/7/17
     * @Param 
     * @return 
     **/
    public List<String> selectMenuByIds(String[] ids);
    /* *
     * @Author bxf
     * @Description 级联查询button
     * @Date 10:49 2019/8/3
     * @param map
     * @return java.util.List<com.ctcemti.mdm.project.sys.entity.SysMenu>
     */
    List<SysMenu> selectByIdForIndex(Map<String,Object> map);
    /* *
     * @Author bxf
     * @Description 根据pid获取所有节点
     * @Date 19:50 2019/8/4
     * @param map
     * @return java.util.List<com.ctcemti.mdm.project.sys.entity.SysMenu>
     */
    List<SysMenu> selectMenuByPid(Map<String,Object> map);
    /* *
     * @Author bxf
     * @Description 根据岗位id获取菜单（去重）
     * @Date 19:19 2019/8/24
     * @param list
     * @return java.util.List<com.ctcemti.mdm.project.sys.entity.SysMenu>
     */
    List<SysMenu> selectAllMenuByJob(List<String> list);
    /* *
     * @Author bxf
     * @Description 获取登录人权限
     * @Date 20:29 2019/9/1
     * @param loginId
     * @return java.util.List<java.lang.String>
     */
    List<String> selectPermissionsFromRole(String loginId);
    /* *
     * @Author bxf
     * @Description 获取登录人菜单
     * @Date 20:29 2019/9/1
     * @param loginId
     * @return java.util.List<java.lang.String>
     */
    List<SysMenu> selectMenusFromRole(String loginId);
    /* *
     * @Author bxf
     * @Description 查询所有信息
     * @Date 9:11 2019/9/6
     * @param
     * @return java.util.List<com.ctcemti.mdm.project.sys.entity.SysMenu>
     */
    List<SysMenu> selectAllForSort();
}